home *** CD-ROM | disk | FTP | other *** search
- /BigDict 300 dict def
- BigDict begin
-
- %--- Some definitions ---
- /XD {exch def} def
- /_SLW {setlinewidth} def
- /_SW {stringwidth} def
- /mydc {4 mul round 4 div exch 4 mul round 4 div exch} def
- /_MT {mydc moveto} def
- /LnW 75 100 div def
- /SLT 03 2 div def
-
- %--- Create arrays to hold staff info ---
- /STopAry 64 array def
- /SBotAry 64 array def
- /NStr 8 string def
- /ChStr 1 string def
- /CFudge [ 1 2 4 8 ] def
-
- %--- GetYPos( ScalePos ) ---
- /GY_{
- 10 sub StepSize mul
- STopAry _CSF get add def
- }def
-
- %--- DrawChar( X0, Y0, Ch ) ---
- /DC_{
- /Ch XD /Y0 exch GY_ /X0 XD
- ChStr 0 Ch put
- X0 Y0 moveto ChStr show
- }def
-
- %--- DrawLine( X0, Y0, X1, Y1 )
- /DL_{
- /Y1 XD /X1 XD /Y0 XD /X0 XD
- X0 Y0 moveto X1 Y1 lineto stroke
- }def
-
- %--- NoteWidth() ---
- /NW_{
- /CW (q) _SW pop (|) _SW pop sub def
- /BGap SpaceSize .75 mul def
- /BH StepSize def
- }def
-
- %--- GraceWidth() ---
- /GW_{
- /|______Sonata findfont FSize .50 mul scalefont setfont
- /CW (q) _SW pop (|) _SW pop sub def
- /BGap SpaceSize .40 mul def
- /BH StepSize .50 mul def
- /SpaceSize SpaceSize .50 mul def
- }def
-
- %--- DrawStaff( X0, Y0, X1 ) ---
- /DSS_
- {/X1 XD /Y0 XD /X0 XD
- /_CSF _CSF 1 add def
- SBotAry _CSF Y0 put
- STopAry _CSF Y0 FSize add put
- /StaffBase Y0 SpaceSize sub def
- /Temp (=) _SW pop def
- X0 Y0 moveto
- X1 X0 sub Temp div cvi
- { (=) show } repeat
- X1 Temp sub Y0 moveto (=) show
- }def
-
- %--- DrawBarLine( X0, FromStaff, ToStaff ) ---
- /DBL_
- {/TS XD /FS XD /X0 XD
- /Y0 STopAry FS get def
- /Y1 SBotAry TS get def
- X0 Y0 moveto
- X0 Y1 lineto stroke
- }def
-
- %--- ScaleFont( FIndex ) ---
- /SF_
- {/FIndex XD
- /FSize [ 14 18 24 36 ] FIndex get def
- /|______Sonata findfont FSize scalefont setfont
- /SpaceSize FSize 4 div def
- /StepSize FSize 8 div def
- }def
-
- %--- DrawMeter( X0, MeterH, MeterL ) ---
- /DM_
- {/ML XD /MH XD /X0 XD
- /MH MH NStr cvs def
- STopAry _CSF get
- SpaceSize sub
- X0 MH _SW pop 2 div sub exch moveto MH show
- /ML ML NStr cvs def
- SBotAry _CSF get
- SpaceSize add
- X0 ML _SW pop 2 div sub exch moveto ML show
- }def
-
- %--- DrawStem( X0, Y0, StemHeight ) ---
- /DS_{
- /SH exch StepSize mul def /Y0 exch GY_ /X0 XD
- /Y1 Y0 SH add def
- DoStem
- }def
-
- %--- DoStem X0, Y0, Y1 ---
- /DoStem{
- Y1 Y0 ge
- {/Temp (\307) def /Dir 1 SpaceSize mul def /Dy Y1 Y0 sub def}
- {/Temp (\310) def /Dir -1 SpaceSize mul def /Dy Y0 Y1 sub def}ifelse
- Dy SpaceSize div cvi
- {X0 Y0 moveto Temp show /Y0 Y0 Dir add def} repeat
- X0 Y1 Dir sub moveto Temp show
- }def
-
- %--- DrawBeamStem( X0, YPos, Shifted ) ---
- /DBS_{
- /SH XD /Y0 exch GY_ /X0 XD
- 0 SH eq
- {/Temp 0 def}
- {/Temp CW def}ifelse
- /Y1 X0 Temp add BX0 sub BDy mul BDx div BY0 add def
- DoStem
- }def
-
- %--- DrawBeamLine( X0, Y0, X1, Y1 ) ---
- /DBL_{
- BH cvi
- {X0 Y0 moveto X1 Y1 lineto stroke
- /Y0 Y0 BDir add def /Y1 Y1 BDir add def}repeat
- }def
-
- %--- DrawBeam( X0, Y0, SH0, X1, Y1, SH1 ) ---
- /DBM_{
- /SH1 XD /BY1 exch GY_ /BX1 XD
- /SH0 XD /BY0 exch GY_ /BX0 XD
- 1 _SLW
- 0 SH0 ne
- {/BDir -1 def /BX0 BX0 CW add def}
- {/BDir 1 def} ifelse
- 0 SH1 ne {/BX1 BX1 CW add def}if
- /BDx BX1 BX0 sub def /BDy BY1 BY0 sub def
- /X0 BX0 def /X1 BX1 def
- /Y0 BY0 def /Y1 BY1 def
- DBL_
- }def
-
- %--- DrawBeamPart( X0, SH0, X1, SH1, YOffset ) ---
- /DBP_{
- /Temp exch BGap mul def
- /SH1 XD /X1 XD
- /SH0 XD /X0 XD
- 0 SH0 ne {/X0 X0 CW add def}if
- 0 SH1 ne {/X1 X1 CW add def}if
- /Y0 X0 BX0 sub BDy mul BDx div BY0 add def
- /Y1 X1 BX0 sub BDy mul BDx div BY0 add def
- /Y0 Y0 Temp add def /Y1 Y1 Temp add def
- DBL_
- }def
-
- %--- Slur( X1, Y1, X2, Y2, X3, Y3, X4, Y4 ) ---
- /SLR_{
- /Y4 XD /X4 XD /Y3 XD /X3 XD
- /Y2 XD /X2 XD /Y1 XD /X1 XD
- /Y2 Y2 Y1 sub 3 div Y2 add def
- /Y3 Y3 Y4 sub 3 div Y3 add def
- X2 X1 eq{/X3 X4 def /X2 X4 X1 sub 2 div X1 add def
- /Y3 Y1 Y4 sub 2 div Y4 add def}if
- X3 X4 eq Y3 Y4 eq and{/X2 X1 def /X3 X4 X1 sub 2 div X1 add def
- /Y2 Y1 Y4 sub 2 div Y4 add def}if
- newpath .25 _SLW X1 Y1 _MT X2 Y2 X3 Y3 X4 Y4 curveto
- Y2 Y1 eq Y3 Y4 eq or
- {Y4 Y1 lt{/Y2 Y2 SLT add def /Y3 Y3 SLT add def}
- {/Y2 Y2 SLT sub def /Y3 Y3 SLT sub def}ifelse}
- {Y2 Y1 lt{/Y2 Y2 SLT add def /Y3 Y3 SLT add def}
- {/Y2 Y2 SLT sub def /Y3 Y3 SLT sub def}ifelse}ifelse
- X3 Y3 X2 Y2 X1 Y1 curveto closepath fill LnW _SLW
- }def
-
-
- %--- Brace( X1, Y1, Y2 ) -----
- /Brace_{
- /Y2 XD /Y1 XD /X1 XD
- gsave
- /FC Y1 Y2 sub FSize 4 mul div def
- FC FC scale
- /X1 X1 (\247) _SW pop FC mul sub FC div def
- X1 Y1 FSize FC mul sub FC div moveto (\247) show
- X1 Y1 FSize 3 mul FC mul sub FC div moveto (\352) show
- grestore
- }def
-
- %------- SClef( X0, YPos, Ch ) --------
- /SClef_{
- /Ch XD /Y0 exch GY_ /X0 XD
- ChStr 0 Ch put
- 63 Ch eq
- {/Y0 Y0 CFudge FIndex get add def} if
- X0 Y0 moveto
- gsave
- .75 .75 scale
- ChStr show
- grestore
- }def
-